😵💫 Как правильно выбрать LLM для использования в агентских системах
Модели могут выдумывать факты, ссылаться на несуществующие источники и уверенно врать. Особенно часто это происходит при работе с редкими языками или специфическими тематиками.
Поэтому на первом занятии курса «AI-агенты для DS-специалистов» разберем, как с этим бороться. И это только первый из пяти уроков!
🔍 Выбор правильной модели
Не все LLM одинаково полезны. Обсудим квантизованные модели, instruct-версии и мультилингвальные решения. Узнаем, где больше галлюцинаций — в базовых моделях или после дообучения.
💰 Токенизация и стоимость
Разные языки «съедают» разное количество токенов. Покажем, как это влияет на цену API и почему русский текст может стоить дороже английского.
⚡️ Температура и Guardrails
Настройка temperature помогает контролировать креативность модели. А системы Guardrails — отсекать неподходящие ответы еще до генерации.
🧠 Память vs контекст
Казалось бы, зачем RAG, если есть модели с контекстом более 10М токенов? Но не все токены равнозначны. Разберем, когда внешние источники все еще нужны.
В конце создадим простых агентов на LangChain с подключением к внешним источникам и инструментам поиска — и у вас уже будет кейс по созданию собственного AI-агента.
👉 Присоединяйтесь к курсу — приятная цена действует до 14 июня!
Модели могут выдумывать факты, ссылаться на несуществующие источники и уверенно врать. Особенно часто это происходит при работе с редкими языками или специфическими тематиками.
Поэтому на первом занятии курса «AI-агенты для DS-специалистов» разберем, как с этим бороться. И это только первый из пяти уроков!
🔍 Выбор правильной модели
Не все LLM одинаково полезны. Обсудим квантизованные модели, instruct-версии и мультилингвальные решения. Узнаем, где больше галлюцинаций — в базовых моделях или после дообучения.
💰 Токенизация и стоимость
Разные языки «съедают» разное количество токенов. Покажем, как это влияет на цену API и почему русский текст может стоить дороже английского.
⚡️ Температура и Guardrails
Настройка temperature помогает контролировать креативность модели. А системы Guardrails — отсекать неподходящие ответы еще до генерации.
🧠 Память vs контекст
Казалось бы, зачем RAG, если есть модели с контекстом более 10М токенов? Но не все токены равнозначны. Разберем, когда внешние источники все еще нужны.
В конце создадим простых агентов на LangChain с подключением к внешним источникам и инструментам поиска — и у вас уже будет кейс по созданию собственного AI-агента.
👉 Присоединяйтесь к курсу — приятная цена действует до 14 июня!
🔐 10 хакерских скриптов на Python
Как насчёт того, чтобы заглянуть по ту сторону Python-разработки?
📌 В этом разборе — настоящие боевые техники, которые используют:
— самомодифицирующийся код
— перехват нажатий клавиш (keylogger)
— скрытые скриншоты экрана
— исполнение из RAM — без следов на диске
— маскировка под легитимные процессы
— обход антивирусов и мониторинга
⚠️ Всё — в образовательных целях. Эти приёмы помогают понять, как думает атакующий, и прокачать навыки кибербезопасности и защиты приложений.
👉 Подробнее в нашей новой статье: https://proglib.io/sh/Eu3Dm2GYbh
Библиотека питониста #буст
Как насчёт того, чтобы заглянуть по ту сторону Python-разработки?
📌 В этом разборе — настоящие боевые техники, которые используют:
— самомодифицирующийся код
— перехват нажатий клавиш (keylogger)
— скрытые скриншоты экрана
— исполнение из RAM — без следов на диске
— маскировка под легитимные процессы
— обход антивирусов и мониторинга
⚠️ Всё — в образовательных целях. Эти приёмы помогают понять, как думает атакующий, и прокачать навыки кибербезопасности и защиты приложений.
👉 Подробнее в нашей новой статье: https://proglib.io/sh/Eu3Dm2GYbh
Библиотека питониста #буст
🥴 Средний разработчик меняет работу каждые 1,5 года
И это не потому, что мы такие непостоянные. Просто рынок показывает свое истинное лицо быстрее, чем успевают напечатать визитки.
Поэтому мы собираем инсайды от тех, кто находится в окопах digital-трансформации каждый день. От джуниоров, которые только въезжают в профессию, до сеньоров, повидавших всякого.
😳 О чем говорим откровенно:
— Job-hopping и что за этим стоит
— Red flags, которые мгновенно убивают мотивацию
— Реальные источники вакансий (не те, что рекламируют)
— Боль от общения с рекрутерами
— Сколько этапов отбора — норма, а сколько — издевательство
Когда мы объединим опыт сотен IT-специалистов, получится настоящая карта того, как устроена индустрия. Не по версии HR-отделов, а по версии тех, кто пишет код, тестирует продукты и двигает технологии вперед.
🚀 Участвовать в исследовании → https://clc.to/9aaXVg
И это не потому, что мы такие непостоянные. Просто рынок показывает свое истинное лицо быстрее, чем успевают напечатать визитки.
Поэтому мы собираем инсайды от тех, кто находится в окопах digital-трансформации каждый день. От джуниоров, которые только въезжают в профессию, до сеньоров, повидавших всякого.
😳 О чем говорим откровенно:
— Job-hopping и что за этим стоит
— Red flags, которые мгновенно убивают мотивацию
— Реальные источники вакансий (не те, что рекламируют)
— Боль от общения с рекрутерами
— Сколько этапов отбора — норма, а сколько — издевательство
Когда мы объединим опыт сотен IT-специалистов, получится настоящая карта того, как устроена индустрия. Не по версии HR-отделов, а по версии тех, кто пишет код, тестирует продукты и двигает технологии вперед.
🚀 Участвовать в исследовании → https://clc.to/9aaXVg
Please open Telegram to view this post
VIEW IN TELEGRAM
Вам нравится читать контент на этом канале?
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
Возможно, вы задумывались о том, чтобы купить на нем интеграцию?
Следуйте 3 простым шагам, чтобы сделать это:
1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию
Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.
🐍 Актуальное из мира Python
⚠️ Безопасность и события:
— Критическая уязвимость в tarfile — может затирать любые файлы на диске
— Security-релизы Django — обновления 5.2.2, 5.1.10 и 4.2.22
— Уволен разработчик PySide — Christian Tismer-Sperling покинул проект после конфликта
🧠 Статьи и гайды:
— Дескрипторы в Python — всё, что нужно знать: от
— Почему multiprocessing.Queue() тормозит — и как использовать
— Алгоритмы сортировки — от пузырька до хитрых гибридов
🧰 Инструменты и ресурсы:
— Flask Wiki — вики от сообщества по изучению Flask
— Juvio — UV-ядро для Jupyter: эксперименты с производительностью
Библиотека питониста #свежак
⚠️ Безопасность и события:
— Критическая уязвимость в tarfile — может затирать любые файлы на диске
— Security-релизы Django — обновления 5.2.2, 5.1.10 и 4.2.22
— Уволен разработчик PySide — Christian Tismer-Sperling покинул проект после конфликта
🧠 Статьи и гайды:
— Дескрипторы в Python — всё, что нужно знать: от
__get__
до магии property— Почему multiprocessing.Queue() тормозит — и как использовать
shared_memory
— Алгоритмы сортировки — от пузырька до хитрых гибридов
🧰 Инструменты и ресурсы:
— Flask Wiki — вики от сообщества по изучению Flask
— Juvio — UV-ядро для Jupyter: эксперименты с производительностью
Библиотека питониста #свежак
❗Вакансии «Библиотеки программиста»
Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке.
👾 Требования:
— знать принципы залетающего контента
— разбираться в темах, связанных с разработкой
Большим плюсом будет навык программирования на каких-либо языках.
✨ Условия:
— удаленка
— частичная занятость
— сдельная оплата в зависимости от количества задач
🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9
Привет! Мы ищем контент-менеджеров, которые будут вести наши телеграм-каналы о разработке.
👾 Требования:
— знать принципы залетающего контента
— разбираться в темах, связанных с разработкой
Большим плюсом будет навык программирования на каких-либо языках.
✨ Условия:
— удаленка
— частичная занятость
— сдельная оплата в зависимости от количества задач
🔥 Оставляйте отклик, и мы свяжемся с вами: https://forms.gle/o4BZnsQ526JoqsCq9
Forwarded from Библиотека задач по Python | тесты, код, задания
Please open Telegram to view this post
VIEW IN TELEGRAM
Python-разработчик — до 150 000 ₽, гибрид (Москва)
Senior Python developer (FastAPI) — до 575 000 ₽, удалёнка
Middle Python Developer — 6 000$, удалёнка
Программист Python — до 100 000 ₽, удалёнка
Senior Python developer (ServiceController), удалёнка
Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
Проблема: разработка смарт-контрактов часто требует глубокого понимания Solidity и сложных инструментов. Для Python-разработчиков важен упрощённый подход к написанию и тестированию смарт-контрактов.
Решение: в книге Hands-On Blockchain for Python Developers автор показывает, как использовать библиотеку web3.py для взаимодействия с Ethereum-сетью и создания простого смарт-контракта, написанного на Solidity, из Python.
Пример кода:
from web3 import Web3
# Подключение к локальному Ethereum ноду
w3 = Web3(Web3.HTTPProvider('http://127.0.0.1:8545'))
# ABI и байткод контракта (упрощённый пример)
abi = '[{"inputs":[],"name":"getValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]'
bytecode = '0x6080604052348015600f57600080fd5b5060a88061001e6000396000f3fe60806040...'
# Развёртывание контракта
SimpleContract = w3.eth.contract(abi=abi, bytecode=bytecode)
tx_hash = SimpleContract.constructor().transact({'from': w3.eth.accounts[0]})
tx_receipt = w3.eth.wait_for_transaction_receipt(tx_hash)
print(f'Контракт развернут по адресу: {tx_receipt.contractAddress}')
Преимущества:
— Позволяет Python-разработчикам работать со смарт-контрактами без глубокого погружения в Solidity
— Использование знакомых инструментов Python
— Автоматизация и тестирование контрактов на локальных сетях
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😡 А вас тоже бесят облачные сервисы?
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
Согласитесь, статус отношений с облаками — все сложно. Но что, если можно изменить правила игры?
Мы готовим нечто особенное в мире облачных технологий, но сначала хотим услышать правду от тех, кто реально работает с облаками каждый день.
❓Что мы хотим узнать:
— Для чего вы реально используете облако?
— Чего катастрофически не хватает прямо сейчас?
— Что бесит больше всего? (можно материться)
— Как выбираете провайдера — по цене или по любви?
— и тому подобное
По результатам опроса мы подготовим исследование без маркетингового мусора и вы узнаете, как обстоят дела у коллег.
⚡️Время на опрос: меньше, чем на кофе-брейк. Жмите → https://clc.to/nboYDA
Офер в VK для бэкенд-разработчиков — попадите в команду за выходные
28–29 июня пройдёт VK Weekend Offer. Всего за 2 дня вы сможете пройти весь путь от знакомства с командами до приглашения на работу: встретиться с лидами, пройти технические собеседования и получить офер.
Языки программирования — Java, Go, Python, C++. Главное требование — от 3 лет реального опыта в бэкенде.
Читайте подробности на сайте и подавайте заявку до 25 июня!
28–29 июня пройдёт VK Weekend Offer. Всего за 2 дня вы сможете пройти весь путь от знакомства с командами до приглашения на работу: встретиться с лидами, пройти технические собеседования и получить офер.
Языки программирования — Java, Go, Python, C++. Главное требование — от 3 лет реального опыта в бэкенде.
Читайте подробности на сайте и подавайте заявку до 25 июня!
🤓 Самоучитель Python: как работать с регулярными выражениями
Разбираемся с модулем re, учимся создавать и использовать регулярные выражения, включая продвинутые проверки.
➡️ Полный материал по ссылке: регулярные выражения
Библиотека питониста #буст
Разбираемся с модулем re, учимся создавать и использовать регулярные выражения, включая продвинутые проверки.
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔁 Как перевернуть последовательность в Python: срезы, .reverse() и reversed()
Иногда нужно пройтись по списку в обратном порядке. Python предлагает как минимум три способа сделать это. Разберём, чем они отличаются и когда что использовать.
1️⃣ Срез с шагом -1
Срезы в Python поддерживают формат
Можно использовать это прямо в цикле:
✅ Но есть нюанс: этот трюк работает только с последовательностями, то есть объектами, у которых есть индексация (списки, строки, кортежи).
2️⃣ Метод .reverse()
Метод
✅ Важно:
— Метод не возвращает новый список, а изменяет оригинал.
— Работает только с типом list. Строки, кортежи и другие объекты не поддерживают
3️⃣ Функция reversed()
Наиболее универсальный и «питоничный» способ — использовать встроенную функцию
✅ Плюсы reversed():
— Работает на любых обратимых итерируемых объектах, не только на списках.
— Не копирует список — возвращает итератор, который идёт с конца.
— Оригинальный объект не изменяется.
Можно использовать
✅ Даже со словарями
Словари в Python 3.7+ сохраняют порядок добавления. Значит, их можно тоже «перевернуть»:
✅ Как reversed() похож на другие помощники циклов:
•
•
•
✅ Что нельзя «перевернуть»
Не все объекты в Python можно перевернуть. Например, файлы и генераторы не поддерживают
✅ Вывод
• Если нужно просто получить копию списка в обратном порядке — используйте
• Если хотите перевернуть список на месте — метод
• Если важно не трогать оригинал, сэкономить память и работать с любыми итерируемыми объектами — используйте
💬 Поделитесь в комментариях, каким способом чаще пользуетесь вы.
🔁 Репостните коллеге, который до сих пор пишет
Библиотека питониста #буст
Иногда нужно пройтись по списку в обратном порядке. Python предлагает как минимум три способа сделать это. Разберём, чем они отличаются и когда что использовать.
Срезы в Python поддерживают формат
[start:stop:step]
. Если шаг отрицательный, список читается справа налево:colors = ["purple", "blue", "green", "pink", "red"]
print(colors[::-1])
# ['red', 'pink', 'green', 'blue', 'purple']
Можно использовать это прямо в цикле:
for color in colors[::-1]:
print("I like", color)
Метод
.reverse()
переворачивает список на месте, изменяя оригинальный объект:colors = ["purple", "blue", "green", "pink", "red"]
colors.reverse()
print(colors)
# ['red', 'pink', 'green', 'blue', 'purple']
— Метод не возвращает новый список, а изменяет оригинал.
— Работает только с типом list. Строки, кортежи и другие объекты не поддерживают
.reverse()
.Наиболее универсальный и «питоничный» способ — использовать встроенную функцию
reversed()
:colors = ["purple", "blue", "green", "pink", "red"]
for color in reversed(colors):
print("I like", color)
— Работает на любых обратимых итерируемых объектах, не только на списках.
— Не копирует список — возвращает итератор, который идёт с конца.
— Оригинальный объект не изменяется.
Можно использовать
next()
для получения элементов по одному:r = reversed(colors)
next(r) # 'red'
next(r) # 'pink'
Словари в Python 3.7+ сохраняют порядок добавления. Значит, их можно тоже «перевернуть»:
capitals = {
"New South Wales": "Sydney",
"Victoria": "Melbourne",
"Western Australia": "Perth",
}
for state, capital in reversed(capitals.items()):
print(f"The capital of {state} is {capital}")
•
enumerate()
— добавляет индексацию•
zip()
— объединяет несколько последовательностей•
reversed()
— переворачивает порядок обходаfor i, color in enumerate(colors, 1):
print(f"{i}. {color}")
Не все объекты в Python можно перевернуть. Например, файлы и генераторы не поддерживают
reversed()
, потому что у них нет фиксированной длины и индексов.• Если нужно просто получить копию списка в обратном порядке — используйте
colors[::-1]
.• Если хотите перевернуть список на месте — метод
.reverse()
.• Если важно не трогать оригинал, сэкономить память и работать с любыми итерируемыми объектами — используйте
reversed()
.💬 Поделитесь в комментариях, каким способом чаще пользуетесь вы.
🔁 Репостните коллеге, который до сих пор пишет
for i in range(len(...))
.Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM